Pular para o conteúdo

Consertando o ^M em scripts shell

Dica publicada em Shell Script / Miscelânea
Rui Ogawa rogawa
Hits: 24.197 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Consertando o ^M em scripts shell

Hoje fui colocar em produção um firewall e notei que ao tentar executar o script, retornava o seguinte erro:

# /bin/bash^M: bad interpreter: Arquivo ou diretório não encontrado

O problema acontece quando um shell script é aberto com algum editor DOS. Ele insere quebras de linhas que os editores *NIX não interpretam, inserindo um ^M no fim da linha.

Como sempre, busquei ajuda primeiro aqui no VOL e encontrei algumas soluções usando o comando sed, mas dando uma pesquisada achei uma solução mais simples e funcional com o pacote tofrodos.

A solução foi apontada pelo Rubens Queiroz de Almeida, no Dicas-L e está na íntegra e muitíssimo bem explicada no link abaixo:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Gráfico da evolução da popularidade das 20 distros mais utilizadas

Renomeando arquivos de maiúsculo para minúsculo

Procurando vídeos de YouTube pelo terminal e assistindo via mpv

MyIP - Facilitador para obter endereço IP externo

hwclock - Ajustando data e hora do hardware

Letras Bacanas no seu Shell Script sem Figlet

#1 Comentário enviado por enzo em 21/05/2009 - 16:01h
Rui

Através do editor VI também podemos fazer o seguinte:

:set fileformat=dos

ou

:set fileformat=unix

no modo de comando.

Abraço,
#2 Comentário enviado por ledubr em 21/05/2009 - 16:37h
No vi, voce pode fazer :

:%s/^M// ( digitar :%s/control-v control-m// )


[]'s
#3 Comentário enviado por rogawa em 23/05/2009 - 12:03h
Agradeço imensamente os comentários do enzo e ledubr. Não é sempre que temos liberdade pra instalar o pacote tofrodos, então realmente nada melhor que saber utilizar os recursos nativos. Valeu!

Contribuir com comentário

Entre na sua conta para comentar.